#requires AutoHotkey v2
-; UltimateKEYS (for AutoHotkey v2).ahk - 2025-01-29
+; UltimateKEYS (for AutoHotkey v2).ahk - 2025-02-11
; Website : https://pieter-degroote.github.io/UltimateKEYS/
SendMode "Input" ; optimizes for faster and more reliable input
+global gEndKeys := "{bs}{esc}" ; ends dead key input on Backspace or Escape
+
; Compose Key Sequences (declaration)
compose["bD"] := "{u+0189}" ; (Ɖ) capital letter African D
compose["be"] := "{u+0115}" ; (ĕ) e with breve
compose["bE"] := "{u+0114}" ; (Ĕ) E with breve
-compose["bf"] := "{u+0259}" ; (ə) small letter schwa (Azerbaijani)
-compose["bF"] := "{u+018f}" ; (Ə) capital letter schwa (Azerbaijani)
compose["bg"] := "{u+011f}" ; (ğ) g with breve
compose["bG"] := "{u+011e}" ; (Ğ) G with breve
compose["bi"] := "{u+012d}" ; (ĭ) i with breve
compose["bT"] := "{u+021a}" ; (Ț) T with comma below (Romanian)
compose["bu"] := "{u+016d}" ; (ŭ) u with breve
compose["bU"] := "{u+016c}" ; (Ŭ) U with breve
-compose["bw"] := "{u+01bf}" ; (ƿ) small letter wynn
-compose["bW"] := "{u+01f7}" ; (Ƿ) capital letter wynn
-compose["by"] := "{u+021d}" ; (ȝ) small letter yogh
-compose["bY"] := "{u+021c}" ; (Ȝ) capital letter yogh
compose["b3"] := "{u+0292}" ; (ʒ) small letter ezh
compose["b#"] := "{u+01b7}" ; (Ʒ) capital letter ezh
compose["lS"] := "{u+01a9}" ; (Ʃ) Latin capital letter esh
compose["lu"] := "{u+028a}" ; (ʊ) Latin small letter upsilon
compose["lU"] := "{u+01b1}" ; (Ʊ) Latin capital letter upsilon
+compose["lw"] := "{u+01bf}" ; (ƿ) small letter wynn
+compose["lW"] := "{u+01f7}" ; (Ƿ) capital letter wynn
+compose["ly"] := "{u+021d}" ; (ȝ) small letter yogh
+compose["lY"] := "{u+021c}" ; (Ȝ) capital letter yogh
compose["l8"] := "{u+0223}" ; (ȣ) small letter ou
compose["l*"] := "{u+0222}" ; (Ȣ) capital letter OU
compose["l7"] := "{u+0242}" ; (ɂ) small letter glottal stop
; Compose : Various Symbols
compose["sa"] := "{u+2100}" ; (℀) account of
-compose["sb"] := "{u+203d}" ; (‽) interrobang
-compose["sB"] := "{u+2e18}" ; (⸘) inverted interrobang
compose["sc"] := "{u+2105}" ; (℅) care of
compose["sd"] := "{u+22c4}" ; (⋄) diamond operator
compose["se"] := "{u+212e}" ; (℮) estimated symbol
compose["AE"] := "{u+00c6}" ; (Æ) letter AE
compose["dh"] := "{u+00f0}" ; (ð) small letter eth
compose["DH"] := "{u+00d0}" ; (Ð) capital letter eth
+compose["ee"] := "{u+0259}" ; (ə) small letter schwa
+compose["EE"] := "{u+018f}" ; (Ə) capital letter schwa
compose["fs"] := "{u+017f}" ; (ſ) small letter long s
compose["ij"] := "{u+0133}" ; (ij) ligature ij
compose["IJ"] := "{u+0132}" ; (IJ) ligature IJ
compose["o-"] := "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
compose["!!"] := "{u+00a1}" ; (¡) inverted exclamation mark
compose["??"] := "{u+00bf}" ; (¿) inverted question mark
+compose["!?"] := "{u+203d}" ; (‽) interrobang
+compose["?!"] := "{u+2e18}" ; (⸘) inverted interrobang
compose["oc"] := "{u+00a9}" ; (©) copyright sign
compose["(c"] := "{u+00a9}" ; (©) copyright sign
compose["op"] := "{u+2117}" ; (℗) sound recording copyright
compose[";h"] := "{u+2043}" ; (⁃) hyphen bullet
compose[";t"] := "{u+2023}" ; (‣) triangular bullet
compose[";;"] := "{u+2022}" ; (•) bullet
+compose[":("] := "{u+2639}" ; (☹) white frowning face
+compose[":)"] := "{u+263a}" ; (☺) white smiling face
+compose[";)"] := "{u+263b}" ; (☻) black smiling face
+compose["<3"] := "{u+2665}" ; (♥) black heart suit
compose["[]"] := "{u+2610}" ; (☐) ballot box
compose["[v"] := "{u+2611}" ; (☑) ballot box with check
compose["[y"] := "{u+2611}" ; (☑) ballot box with check
>!sc056:: ; Right Alt + ISO Key
<^>!sc029:: ; AltGr + Grave Accent
<^>!sc056:: { ; AltGr + ISO Key
- keys := InputHook("L2", "{esc}")
- keys.Start()
- keys.Wait()
- if compose.Has(keys.Input)
- Send compose[keys.Input]
+ ih := InputHook("L2", gEndKeys)
+ ih.Start(), ih.Wait()
+ if compose.Has(ih.Input)
+ Send compose[ih.Input]
}